package com.netstar.salesman_90dsp.engine;

import java.io.UnsupportedEncodingException;

import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;

import com.loopj.android.http.RequestParams;
import com.netstar.salesman_90dsp.config.DefaultConfig;
import com.netstar.salesman_90dsp.config.SharedPreferencesConfig;
import com.netstar.salesman_90dsp.config.WebServerConfig;
import com.netstar.salesman_90dsp.model.UserModel;

/**
 * 登录业务逻辑类
 * 
 * @author zhangshuai
 * 
 */
public class LoginEngine {
	/**
	 * 请求参数
	 */
	private RequestParams params;
	/**
	 * 上下文
	 */
	private Context context;
	/**
	 * 配置文件对象
	 */
	private SharedPreferences sharedPreferencesDefault;
	/**
	 * 配置文件操作对象
	 */
	private Editor editorDefault;

	public LoginEngine(Context context) {
		super();
		this.context = context;
		sharedPreferencesDefault = context.getSharedPreferences(
				SharedPreferencesConfig.DEFAULT_SP_FILE_NAME,
				Context.MODE_PRIVATE);
		editorDefault = sharedPreferencesDefault.edit();
	}

	/**
	 * 获取分类请求参数
	 * 
	 * @param upId
	 *            上级栏目id
	 * @return
	 * @throws UnsupportedEncodingException
	 */
	public RequestParams getRequestParams(String userAccount, String userPwd)
			throws UnsupportedEncodingException {
		params = new RequestParams();
		params.put(WebServerConfig.LoginRequestParamKeys.userAccount,
				userAccount);
		params.put(WebServerConfig.LoginRequestParamKeys.pwd, userPwd);
		return params;
	}

	/**
	 * 获取用户登录帐号
	 * 
	 * @return true 为是，false 为不是
	 */
	public String getUserAccount() {
		String userAccount = "";
		userAccount = sharedPreferencesDefault.getString(
				SharedPreferencesConfig.LOGIN_USER_ACCOUNT, "");
		return userAccount;
	}

	/**
	 * 获取用户密码
	 * 
	 * @return true 为是，false 为不是
	 */
	public String getUserPWD() {
		String userPWD = "";
		userPWD = sharedPreferencesDefault.getString(
				SharedPreferencesConfig.LOGIN_USER_PWD, "");
		return userPWD;
	}

	/**
	 * 是否自动登录
	 * 
	 * @return true 为是，false 为不是
	 */
	public boolean isAutoLogin() {
		boolean isAutoLogin = false;
		isAutoLogin = sharedPreferencesDefault.getBoolean(
				SharedPreferencesConfig.LOGIN_AUTO_LOGIN, false);
		return isAutoLogin;
	}

	/**
	 * 保存用户信息
	 * 
	 * @param userAccount
	 * @param userPWD
	 * @param isAutoLogin
	 */
	public void saveUserInfo(String userAccount, String userPWD,
			boolean isAutoLogin) {
		editorDefault.putString(SharedPreferencesConfig.LOGIN_USER_ACCOUNT,
				userAccount);
		// TODO 后期考虑，密码加密情况
		editorDefault
				.putString(SharedPreferencesConfig.LOGIN_USER_PWD, userPWD);
		editorDefault.putBoolean(SharedPreferencesConfig.LOGIN_AUTO_LOGIN,
				isAutoLogin);
		editorDefault.commit();
	}

	/**
	 * 将用户信息保存入配置文件
	 * 
	 * @param userModel
	 */
	public void copyInfoToConfig(UserModel userModel) {
		DefaultConfig.userModel = userModel;
	}
}
